/**
* \file DGVGlobal.h
*
* \brief This file defines all the global macros used in the library, especially for DLLs.
* \author Shekhar S. Chandra, 2009
*
* This file is part of DGV Library.
*
* DGV is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DGV is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DGV.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DGV_GLOBAL_H
#define DGV_GLOBAL_H

#define DGV_VERSION       0x000001
#define DGV_VERSION_STR   "0.0.1"

#if defined(WIN32)

	#ifdef DGV_DLL
	/*
	Used for DLL generation purposes (Windows Specific) Import/Export.
	Templates classes cannot be imported hence its own variable.
	The export command is 
	*/
	#if defined(DGV_MAKEDLL)     // create a DGV DLL library 
		#define DGV_EXPORT  __declspec(dllexport)
		#define DGV_TEMPLATEDLL  __declspec(dllexport)
	#else                        // use a DGV DLL library
		#define DGV_EXPORT  __declspec(dllimport)
		#define DGV_TEMPLATEDLL 
		#endif

	#if defined(DGV_VTK_MAKEDLL)     // create a DGV VTK DLL library 
		#define DGV_VTK_EXPORT  __declspec(dllexport)
		#define DGV_VTK_TEMPLATEDLL  __declspec(dllexport)
	#else                        // use a DGV VTK DLL library
		#define DGV_VTK_EXPORT  __declspec(dllimport)
		#define DGV_VTK_TEMPLATEDLL 
	#endif

	#endif // DGV_DLL

#endif // WIN32

#ifndef DGV_EXPORT
#define DGV_EXPORT
#define DGV_TEMPLATEDLL 
#endif

#ifndef DGV_VTK_EXPORT
#define DGV_VTK_EXPORT
#define DGV_VTK_TEMPLATEDLL 
#endif

#endif // DGV_GLOBAL_H
